package com.sitech.timing.dao;

import java.util.List;

import com.sitech.timing.domain.GroupTaskInfo;
import com.sitech.timing.domain.GroupTaskInstance;
import com.sitech.timing.domain.TaskInfo;
import com.sitech.timing.domain.TaskInstance;
import com.sitech.timing.domain.TaskType;

public interface TaskDao 
{
	public List<GroupTaskInfo> getAllGroupTask();
	public List<TaskInfo> getAllTask();
	public List<TaskType> getAllTaskType();
	public void insertTaskInstance(TaskInstance taskInstance);
	public void insertGroupTaskInstance(GroupTaskInstance groupTaskInstance);

	public void insertTask(TaskInfo taskInfo);
	public void insertGroupTask(GroupTaskInfo groupTaskInfo);	
	public void insertTaskType(TaskType taskType);
	
	public void deleteGroupTask(String groupTaskId);
	public void deleteTask(String taskId);
	public void deleteTaskType(String taskTypeId);
	
	public List<GroupTaskInstance> getGroupTaskInstanceByStatus(String status);
	public List<TaskInstance> getTaskInstanceByStatus(String status);
	
	public void updateGroupTaskInstance(GroupTaskInstance groupTaskInstance);
	public void updateTaskInstance(TaskInstance taskInstance);
	
	public TaskInstance getTaskInstanceByGroup(String groupTaskInstanceId,String taskId);
	
	public GroupTaskInfo getGroupTaskInfo(String groupTaskId);
	public List<GroupTaskInfo> getGroupTaskBySuperGroupId(String superGroupTaskId);

	public List<TaskInfo> getTaskByGroupTaskId(String groupTaskId);

	public TaskInfo getTaskInfo(String taskId);
	
	public List<TaskType> getTaskTypeByGroupTaskId(String groupTaskId);

}
